import request from '../utils/request'

// 获取用户列表
const getUserList = () => {
  try {
    const users = localStorage.getItem('users')
    return users ? JSON.parse(users) : []
  } catch (error) {
    console.error('获取用户列表失败:', error)
    return []
  }
}

// 保存用户列表
const saveUserList = (users) => {
  localStorage.setItem('users', JSON.stringify(users))
}

export function login(data) {
  // 模拟登录接口
  return new Promise((resolve) => {
    setTimeout(() => {
      // 从本地存储获取用户列表
      const users = getUserList()
      const user = users.find(u => u.username === data.username)
      
      // 验证用户名和密码
      if (user && user.password === data.password) {
        resolve({
          success: true,
          message: '登录成功',
          token: 'mock_token_' + Date.now(),
          user: {
            id: user.id,
            username: user.username,
            role: user.role || 'user'
          }
        })
      } else {
        resolve({
          success: false,
          message: '用户名或密码错误'
        })
      }
    }, 1000)
  })
}

export function register(data) {
  // 模拟注册接口
  return new Promise((resolve) => {
    setTimeout(() => {
      // 从本地存储获取用户列表
      const users = getUserList()
      
      // 检查用户名是否已存在
      if (users.some(u => u.username === data.username)) {
        resolve({
          success: false,
          message: '用户名已存在'
        })
        return
      }
      
      // 创建新用户
      const newUser = {
        id: Date.now(),
        username: data.username,
        password: data.password,
        role: 'user',
        createTime: new Date().toISOString()
      }
      
      // 添加到用户列表并保存
      users.push(newUser)
      saveUserList(users)
      
      resolve({
        success: true,
        message: '注册成功'
      })
    }, 1000)
  })
}

export function logout() {
  return Promise.resolve()
}

// 初始化默认管理员账号
(() => {
  const users = getUserList()
  if (!users.some(u => u.username === 'admin')) {
    users.push({
      id: 1,
      username: 'admin',
      password: '123456',
      role: 'admin',
      createTime: new Date().toISOString()
    })
    saveUserList(users)
  }
})() 